home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 19 / Mac Magazin and MacEasy Magazine CD - Issue 19.iso / Grafik & Text & Film / Quark XTensions / Freeware Xtensions / Scripts folder / Scripts / Text • Change Style Sheets-TEXT < prev   
Text File  |  1994-04-15  |  5KB  |  122 lines

  1. tell application "QuarkXPress®"
  2.     activate
  3.     try
  4.         if (exists document 1) is false then
  5.             beep
  6.             display dialog "No document is open." buttons {"Cancel"} default button 1
  7.         else
  8.             set docname to (get name of document 1)
  9.             try
  10.                 --the first statement gets the name of every style sheet used in the document
  11.                 set styleSheetsUsedList to get name of (style sheet of every paragraph of every story) of document 1
  12.             on error
  13.                 beep
  14.                 display dialog "No text with style sheets exists in this document." buttons {"Cancel"} default button 1
  15.             end try
  16.             --this gets every available style sheet in the document
  17.             set styleSheetList to get name of every style spec of document 1
  18.             
  19.             --this is where we take the items from the list
  20.             --and place numbers and parens before them and a return after
  21.             --and place into another variable
  22.             set x to 1
  23.             set numberStyleSheetList to {}
  24.             repeat with i from 1 to the (count of items of styleSheetList)
  25.                 set styleSheetName to item i of styleSheetList
  26.                 set numberedStyleSheetName to "(" & x & ") " & styleSheetName & return
  27.                 set numberStyleSheetList to numberStyleSheetList & numberedStyleSheetName
  28.                 set x to x + 1
  29.             end repeat
  30.             
  31.             --setting up the display dialogs so that they display within the acceptable range of characters
  32.             --then displaying the style sheet lists
  33.             --the tripFlare is so that the user has the option of repeating the list display
  34.             set styleSheetCount to the count of text items of numberStyleSheetList
  35.             set tripFlare to "Armed"
  36.             set flag to false
  37.             repeat until tripFlare is "OK"
  38.                 set oldDelims to AppleScript's text item delimiters --store old delimiters
  39.                 set AppleScript's text item delimiters to "," --change the delimiters to a comma
  40.                 set listToDisplay to text item 1 of numberStyleSheetList
  41.                 repeat with i from 2 to the (count of text items of numberStyleSheetList)
  42.                     if the (count of characters of (listToDisplay & (text item i of numberStyleSheetList))) > 202 then --includes doc name
  43.                         set listToDisplay to listToDisplay
  44.                         display dialog "Style sheets in " & "“" & docname & "”" & ": " & return & listToDisplay buttons {"Cancel", "More"} default button 2
  45.                         set listToDisplay to "" --clears the variable
  46.                     end if
  47.                     if (listToDisplay = "") is false then
  48.                         set listToDisplay to listToDisplay & (text item i of numberStyleSheetList) --creates a list
  49.                     else
  50.                         set listToDisplay to (text item i of numberStyleSheetList) --starts a new screen list
  51.                     end if
  52.                 end repeat
  53.                 --this dialog displays if there is only one screen of style sheets or as the last dialog of the series
  54.                 set prompter to display dialog "Style Sheets in " & "“" & docname & "”" & ": " & return & listToDisplay buttons {"Cancel", "Again", "OK"} default button 3
  55.                 -- if the user indicates to go on then ask for their choices
  56.                 if button returned of prompter is "OK" then
  57.                     set stylesToChange to {}
  58.                     repeat until flag is true
  59.                         set dialogResult to display dialog "Type the *number* of the style sheet to change FROM, " & ¬
  60.                             "then a comma (,) and the *number* of the style sheet to change TO." default answer "" buttons {"Cancel", "Again", "OK"} default button 3
  61.                         set tripFlare to button returned of dialogResult
  62.                         if tripFlare is "Again" then
  63.                             exit repeat
  64.                         end if
  65.                         
  66.                         set stylesToChange to text returned of dialogResult
  67.                         
  68.                         --now we have to check what the user indicated for errors
  69.                         set qualityCheck to "Off"
  70.                         if (count of text items of stylesToChange) ≠ 2 then
  71.                             display dialog "TWO styles must be chosen. One to change FROM, one to change TO."
  72.                         else
  73.                             try
  74.                                 set changeFromNumber to text item 1 of stylesToChange as integer
  75.                                 set changeToNumber to text item 2 of stylesToChange as integer
  76.                                 set qualityCheck to "Go"
  77.                             on error
  78.                                 beep
  79.                                 display dialog "Type numbers only."
  80.                             end try
  81.                         end if
  82.                         
  83.                         if qualityCheck is "Go" then
  84.                             if changeFromNumber is greater than styleSheetCount then
  85.                                 display dialog "Style sheet numbers must be between 1 and " & styleSheetCount
  86.                             else if changeFromNumber is 0 then
  87.                                 display dialog "Style sheet numbers must be between 1 and " & styleSheetCount
  88.                             else if changeToNumber is greater than styleSheetCount then
  89.                                 display dialog "Style sheet numbers must be between 1 and " & styleSheetCount
  90.                             else if changeToNumber is 0 then
  91.                                 display dialog "Style sheet numbers must be between 1 and " & styleSheetCount
  92.                             else
  93.                                 set flag to true
  94.                             end if
  95.                         end if
  96.                     end repeat
  97.                 end if
  98.                 set AppleScript's text item delimiters to oldDelims --set the delimiters back to the old delimiters
  99.             end repeat
  100.             
  101.             --if everything is fine then do the swap of style sheets
  102.             if flag is true then
  103.                 try
  104.                     set styleToChangeTo to text item changeToNumber of styleSheetList
  105.                     set styleToCHangeFrom to text item changeFromNumber of styleSheetList
  106.                     if styleToCHangeFrom is not in styleSheetsUsedList then
  107.                         beep
  108.                         display dialog "The style sheet " & styleToCHangeFrom & " is not set to any text in this document." buttons "Cancel" default button 1
  109.                     else
  110.                         tell (every paragraph of every story of document 1 whose name of style sheet = styleToCHangeFrom)
  111.                             set style sheet to styleToChangeTo
  112.                         end tell
  113.                     end if
  114.                     beep 2
  115.                 on error
  116.                 end try
  117.             end if
  118.         end if
  119.     on error
  120.     end try
  121. end tell
  122.